
new Vue({
    el: '#app',
    mixins: [Save],//组件配置文件，路径/utils/components.js
    data() {
        return {
            dataForm: {},
            childDataForm: [{}],//子表
        }
    },
    mounted() {
        /**
         * 组件配置文件中自动执行方法
         * 1.this.init(); //初始化文件
         * 2.this.getData(); //仅修改时执行，根据BOM配置属性查询
         */
        this.getList();
        // 初始化剩余数量为0
        this.initRemainQuantity();
    },
    watch: {
        // 监听子表数据变化，确保新增行时剩余数量初始化为0
        childDataForm: {
            handler(newVal) {
                newVal.forEach(item => {
                    if (item.Remain_Quantity === undefined || item.Remain_Quantity === null || item.Remain_Quantity === '') {
                        if (item.Receipt_Quantity) {
                            // 如果有入库数量，剩余数量等于入库数量
                            this.$set(item, 'Remain_Quantity', item.Receipt_Quantity);
                        } else {
                            // 如果没有入库数量，剩余数量为0
                            this.$set(item, 'Remain_Quantity', '0');
                        }
                    }
                });
            },
            deep: true,
            immediate: true
        }
    },
    methods: {
        getList() {
        },
        // 初始化剩余数量
        initRemainQuantity() {
            this.childDataForm.forEach(item => {
                if (!item.Remain_Quantity) {
                    this.$set(item, 'Remain_Quantity', item.Receipt_Quantity || '0');
                }
            });
        },
        // 处理入库数量变化，自动计算剩余数量
        handleReceiptQuantityChange(index, item) {
            const receiptQuantity = parseFloat(item.Receipt_Quantity) || 0;
            // 剩余数量 = 入库数量
            this.$set(item, 'Remain_Quantity', receiptQuantity >= 0 ? receiptQuantity.toString() : '0');
        },
        // 重写 handleAdd 方法，确保新增行时剩余数量初始化为0
        handleAdd(formName) {
            try {
                if (this.action === 'Add') {
                    this[formName].push({});
                } else if (this.action === 'Modify') {
                    const { primaryKey } = $('#form').data('options');
                    let lJSONObject_Data = new Object();
                    lJSONObject_Data[primaryKey] = this.nodeKey;
                    this[formName].push(lJSONObject_Data);
                }
                // 如果是子表，初始化剩余数量为0
                if (formName === 'childDataForm') {
                    this.$nextTick(() => {
                        const lastItem = this[formName][this[formName].length - 1];
                        if (lastItem && (!lastItem.Remain_Quantity || lastItem.Remain_Quantity === '')) {
                            this.$set(lastItem, 'Remain_Quantity', '0');
                        }
                    });
                }
            } catch (error) {
                console.error(error);
                this.$message.error("系统错误，请联系开发者!");
            }
        }
    }
})